package com.liu.mapper;

import com.liu.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Author :LiuYuMei
 * @Date :2021-08-11 22:00:53
 */

@Mapper
public interface UserMapper {
    // 查询全部用户信息
    List<User> selectUserList();

    // 根据id查询用户信息
    // 作为Dao层的注解,作用是用于传递参数,从而可以与SQL中的的字段名相对应
    User selectUserById(@Param("id") Integer id);

    // 插入一条用户信息
    Integer addUser(@Param("user") User user);

    // 根据id修改一条用户信息
    Integer updateUserById(@Param("user") User user);

    // 根据id删除一条用户信息
    Integer deleteUserById(@Param("id") Integer id);

    // 模糊查询方法一
    List<User> selectUserListLike1(@Param("name") String name);

    // 模糊查询方法二
    List<User> selectUserListLike2(@Param("name") String name);

    // limit分页查询
    List<User> selectUserListLimit(
            @Param("startNum") Integer startNum,
            @Param("pageSize") Integer pageSize
    );

    // 直接在接口上写注解，需要在核心配置文件中绑定接口<mapper class="com.liu.mapper.UserMapper"/> / <package name="com.liu.mapper"/>
    @Select("select * from user")
    List<User> getUsers();
}
